#include "pantalla.h"

Pantalla::Pantalla() {

	pantallaSurface = NULL;

}

Pantalla::~Pantalla() {

	delete pantallaSurface;

}

void Pantalla::iniciar(int alto, int ancho) {

	int resultado;

	resultado = SDL_Init(SDL_INIT_EVERYTHING);

	pantallaSurface = SDL_SetVideoMode(ancho,alto,32,
			SDL_HWSURFACE | SDL_DOUBLEBUF);

	if ( pantallaSurface == NULL ) {
		//TODO::LOGUEAR ERROR
		exit(EXIT_FAILURE);
	}

	resultado = TTF_Init();

	if (resultado < 0 ) {
		//TODO:LOGUEAR ERROR
		exit(EXIT_FAILURE);
	}

}

void Pantalla::limpiar() {

	int resultado;

	//HAY QUE REDIBUJAR, POR LO QUE BORRAMOS LA LISTA
	imagenes.clear();

	resultado = SDL_FillRect(pantallaSurface,NULL,
			SDL_MapRGB(pantallaSurface->format,0,0,0));

	if (resultado < 0 ) {
		//TODO:LOGUEAR ERROR
		exit(EXIT_FAILURE);
	}
}

void Pantalla::agregarImagen(Imagen & imagen) {

	imagenes.push_back(imagen);

}

void Pantalla::dibujar() {

	list<Imagen>::iterator iImagen;

	for (iImagen = imagenes.begin(); iImagen != imagenes.end(); ++iImagen) {
		(*iImagen).dibujar(pantallaSurface);
	}

	SDL_Flip(pantallaSurface);

}
